﻿using IOA.MES.DataAccess.Enum;
using System.Collections.Generic;

namespace IOA.MES.DataAccess.VModel
{
    /// <summary>
    /// 过站配置JSON对象
    /// </summary>
    public class ViaSiteConfigModel
    {
        /// <summary>
        /// 过站要求
        /// </summary>
        public List<ViaSite> ViaSites { get; set; }

        /// <summary>
        /// 装框要求
        /// </summary>
        public Framing Framing { get; set; }

        /// <summary>
        /// QTime
        /// </summary>
        public QTime QTime { get; set; }

        /// <summary>
        /// 打包条件
        /// </summary>
        public object PackCondition { get; set; }

        /// <summary>
        /// 拼柜条件
        /// </summary>
        public object CabinetCondition { get; set; }

        /// <summary>
        /// IV上传配置
        /// </summary>
        public IVUpload IVUpload { get; set; }

        /// <summary>
        /// 物料信息卡控（true：分片时校验工单物料信息是否完整）
        /// </summary>
        public bool MaterialInfoControl { get; set; }
    }

    /// <summary>
    /// 过站要求
    /// </summary>
    public class ViaSite
    {
        /// <summary>
        /// 站点类型
        /// </summary>
        public SiteType SiteType { get; set; }

        /// <summary>
        /// 必须过站
        /// </summary>
        public bool ForceVia { get; set; }

        /// <summary>
        /// 重复过站
        /// </summary>
        public bool MultipleVia { get; set; }
    }

    /// <summary>
    /// 装框
    /// </summary>
    public class Framing
    {
        /// <summary>
        /// 接线盒需要拍照
        /// </summary>
        public bool JunctionBoxPhoto { get; set; }

        /// <summary>
        /// 接线盒条码扫描
        /// </summary>
        public bool JunctionBoxBarCodeScan { get; set; }
    }

    /// <summary>
    /// 装框
    /// </summary>
    public class QTime
    {
        /// <summary>
        /// 层压时间（分钟）
        /// </summary>
        public int? LaminatedTime { get; set; }

        /// <summary>
        /// 固化时间（分钟）
        /// </summary>
        public int? SolidifyTime { get; set; }

        /// <summary>
        /// 返修时间（分钟）
        /// </summary>
        public int? ReworkTime { get; set; }
    }

    /// <summary>
    /// IV上传配置
    /// </summary>
    public class IVUpload
    {
        /// <summary>
        /// 曲线图上传
        /// </summary>
        public bool Graph { get; set; }

        /// <summary>
        /// RFID点数据上传
        /// </summary>
        public bool RfidDot { get; set; }

        /// <summary>
        /// 是否烧录
        /// </summary>
        public bool Burn { get; set; }
    }
}
